var layer
    ,tree
    ,util
    ,element
    ,$;
layui.use(['layer', 'tree','element','util','jquery'], function(){
         layer = layui.layer;
        tree = layui.tree;
        util = layui.util;
        $ = layui.$;
        element = layui.element;

    $(function(){
        toastrOptions = {
            closeButton: false,                         // 是否显示关闭按钮（提示框右上角关闭按钮）；
            debug: false,                               // 是否为调试；
            progressBar: true,                          // 是否显示进度条（设置关闭的超时时间进度条）；
            positionClass: "toast-bottom-right",        // 消息框在页面显示的位置
            onclick: null,
            showDuration: "400",                        // 显示动作时间
            hideDuration: "1000",                       // 隐藏动作时间
            timeOut: "3000",                            // 自动关闭超时时间
            extendedTimeOut: "1000",
            showEasing: "swing",
            hideEasing: "linear",
            showMethod: "fadeIn",                       // 显示的方式，和jquery相同
            hideMethod: "fadeOut"                       // 隐藏的方式，和jquery相同
        };
        toastr.options = toastrOptions;
        toastr.info($("#welcome").val());
        disabledFirstColse()
        element.on('tabDelete(md-content)', function(data){
            layer.msg("正在关闭")
            layer.closeAll();
        });
    })

    // welcome文章
    welcome();

    // 查询目录
    queryCatelogTree();
    // 小工具
    util.fixbar({
        bar1: "&#xe60a;"
        ,bar2: "&#xe669;"
        ,click: function(type){
            if(type === 'bar1'){
               layer.closeAll();
                openML();
            }
            if(type === 'bar2'){
               layer.msg("暂未开通刷新功能");
            }
        }
    });
});

/**
 * 查询菜单结构
 */
function queryCatelogTree(){
    $.ajax({
        url:"/queryCatelogTree",
        type:"get",
        dataType:"json",
        success:function (result) {
            if (result.code == 200 ){
                layui.tree({
                    elem: '#treeId' //传入元素选择器
                    ,nodes: result.object
                    ,click: function(node){
                        console.log(node) //node即为当前点击的节点数据
                        if(!node.dir){
                            var isOpen = $("#content"+node.id);
                            if(isOpen.length >0){
                                isOpen.click();
                            }else{
                                queryContent(node.id,node.name,node.path);
                            }
                        }
                    }
                });
            } else{
                layer.msg("查询菜单列表失败了");
            }
        },
        error:function () {
            layer.msg("查询菜单列表失败了");
        }
    })
}

/**
 * 读物md内容
 * @param id
 * @param name
 * @param path
 */
function queryContent(id,name,path) {
    var index = layer.load();
    $.ajax({
        url:"/queryContent",
        type:"get",
        dataType:"json",
        data:{
            path:path,
            id:id,
            name:name
        },
        success:function (result) {
            if(result.code !=200){
                layer.msg(result.msg)
                return;
            }
            var content = result.object;
            addTable(content,id,name);
        },
        error:function () {
            layer.msg("生成api失败了");
        },
        complete:function () {
            layer.close(index);
        }
    })
}

/**
 * 新增table
 * @param content
 * @param id
 * @param name
 */
function addTable(content,id,name) {
    var index = layer.load();
    var element = layui.element;
    var contentId = "content"+id;
    element.tabAdd('md-content', {
        title: name
        ,content:' <div class="preview-panel" id='+contentId+'></div> ' +
                '  <div style="display: none;" class="contentTree"> ' +
                    ' <div class="preview-panel content-tree" style="padding-left: 0"></div>' +
                '  </div> '
        ,id: id
    });
    element.tabChange('md-content', id);
    disabledFirstColse();
    markdownToHtml(content, document.getElementById(contentId),function () {
        var toc = $('#'+contentId+' .toc').html();
        $(".layui-show .content-tree").html(toc);
        openML();
    });
    layer.close(index);
}

/**
 * 打开目录
 */
function openML() {
    layer.closeAll();
    var content = $('.layui-show .contentTree').html();
    if(''==content){
       return;
    }
    layer.open({
        title:'目录',
        area: ['350px','700px'],
        offset: 'rt',
        shade: false,
        type: 1,
        content:content
    });
}

function welcome() {
    var index = layer.load();
    $.ajax({
        url:"/queryWelcome",
        type:"get",
        dataType:"json",
        success:function (result) {
            if(result.code !=200){
                layer.msg(result.msg)
                return;
            }
            var content = result.object;
            markdownToHtml(content, document.getElementById("contentId000"),function () {
                var toc = $('#contentId000 .toc').html();
                $(".layui-show .content-tree").html(toc);
            });
        },
        error:function () {
            layer.msg("获取首页信息失败");
        },
        complete:function () {
            layer.close(index);
        }
    })
}

function disabledFirstColse() {
    //document.getElementById("no-close").childNodes[1].remove();
}
